diff --git a/hifi/xaf/hifi-dpf/audio/xa-class-audio-codec.c b/hifi/xaf/hifi-dpf/audio/xa-class-audio-codec.c
index 3806548..ce233f0 100644
--- a/hifi/xaf/hifi-dpf/audio/xa-class-audio-codec.c
+++ b/hifi/xaf/hifi-dpf/audio/xa-class-audio-codec.c
@@ -160,7 +160,7 @@
 {
     XAAudioCodec   *codec = (XAAudioCodec *) base;
 
-    /* ...make sure the port is sane */
+    /* ...make sure the port is valid */
     XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == 0, XA_API_FATAL_INVALID_CMD);
 
     /* ...command is allowed only in post-init state */
@@ -202,7 +202,7 @@
 {
     XAAudioCodec   *codec = (XAAudioCodec *) base;
 
-    /* ...make sure the port is sane */
+    /* ...make sure the port is valid */
     XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == 1, XA_API_FATAL_INVALID_CMD);
 
     /* ...command is allowed only in postinit state */
diff --git a/hifi/xaf/hifi-dpf/audio/xa-class-base.c b/hifi/xaf/hifi-dpf/audio/xa-class-base.c
index 0b67255..ef1110e 100644
--- a/hifi/xaf/hifi-dpf/audio/xa-class-base.c
+++ b/hifi/xaf/hifi-dpf/audio/xa-class-base.c
@@ -118,7 +118,7 @@
             /* ...scratch memory is shared among all codecs; check its validity */
             XF_CHK_ERR(size <= XF_CFG_CODEC_SCRATCHMEM_SIZE, XA_API_FATAL_MEM_ALLOC);
 
-            /* ...make sure alignment is sane */
+            /* ...make sure alignment is valid */
             XF_CHK_ERR((XF_CFG_CODEC_SCRATCHMEM_ALIGN & (align - 1)) == 0, XA_API_FATAL_MEM_ALIGN);
 
             /* ...set the scratch memory pointer */
@@ -172,7 +172,7 @@
     /* ...calculate total amount of parameters */
     n = m->length / sizeof(*param);
 
-    /* ...check the message length is sane */
+    /* ...check the message length is valid */
     XF_CHK_ERR(m->length == XF_SET_PARAM_CMD_LEN(n), XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...apply all parameters; pass to codec-specific function */
@@ -506,7 +506,7 @@
 {
     XACodecBase    *base;
 
-    /* ...make sure the size is sane */
+    /* ...make sure the size is valid */
     XF_CHK_ERR(size >= sizeof(XACodecBase), NULL);
     
     /* ...allocate local memory for codec structure */
diff --git a/hifi/xaf/hifi-dpf/audio/xa-class-mixer.c b/hifi/xaf/hifi-dpf/audio/xa-class-mixer.c
index ac2ff9a..47b4740 100644
--- a/hifi/xaf/hifi-dpf/audio/xa-class-mixer.c
+++ b/hifi/xaf/hifi-dpf/audio/xa-class-mixer.c
@@ -505,7 +505,7 @@
     {
         XATrack    *track = &mixer->track[idx];
 
-        /* ...input buffer allocation; check track number is sane */
+        /* ...input buffer allocation; check track number is valid */
         XF_CHK_ERR(idx < XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
 
         /* ...create input port for a track */
diff --git a/hifi/xaf/hifi-dpf/core/xf-io.c b/hifi/xaf/hifi-dpf/core/xf-io.c
index 4ec415c..09f8e3e 100644
--- a/hifi/xaf/hifi-dpf/core/xf-io.c
+++ b/hifi/xaf/hifi-dpf/core/xf-io.c
@@ -540,7 +540,7 @@
     /* ...it is not permitted to access port data when port is being unrouted */
     BUG(xf_output_port_unrouting(port), _x("invalid transaction"));
 
-    /* ...make sure message length is sane */
+    /* ...make sure message length is valid */
     BUG(m->length < port->length, _x("Insufficient buffer length: %u < %u"), m->length, port->length);
         
     /* ...return access buffer pointer */
diff --git a/hifi/xaf/hifi-dpf/ipc/xt-shmem/xf-main.c b/hifi/xaf/hifi-dpf/ipc/xt-shmem/xf-main.c
index f917800..dd52bd2 100644
--- a/hifi/xaf/hifi-dpf/ipc/xt-shmem/xf-main.c
+++ b/hifi/xaf/hifi-dpf/ipc/xt-shmem/xf-main.c
@@ -181,7 +181,7 @@
     }
 #endif
 
-    /* ...enter execution loop on master core #0 */
+    /* ...enter execution loop on main core #0 */
     xf_core_loop(0);
 
     /* ...not reachable */
diff --git a/hifi/xaf/hifi-dpf/plugins/cadence/mixer/xa-mixer.c b/hifi/xaf/hifi-dpf/plugins/cadence/mixer/xa-mixer.c
index 0909d44..2191239 100644
--- a/hifi/xaf/hifi-dpf/plugins/cadence/mixer/xa-mixer.c
+++ b/hifi/xaf/hifi-dpf/plugins/cadence/mixer/xa-mixer.c
@@ -68,7 +68,7 @@
     /* ...number of bytes in input/output buffer */
     u32                 buffer_size;
     
-    /* ...master volume and individual track volumes*/
+    /* ...main volume and individual track volumes*/
     u32                 volume[XA_MIXER_MAX_TRACK_NUMBER + 1];
     
     /* ...input buffers */
@@ -116,7 +116,7 @@
     /* ...set default parameters */
     d->pcm_width = 16, d->channels = 2, d->frame_size = 512;
 
-    /* ...set default volumes (last index is a master volume)*/
+    /* ...set default volumes (last index is a main volume)*/
     for (i = 0; i <= XA_MIXER_MAX_TRACK_NUMBER; i++)
     {
         d->volume[i] = ((1 << 12) << 16) | (1 << 12);
@@ -134,7 +134,7 @@
     u32     t32;
     u32     i, j;
     
-    /* ...retrieve master volume - assume up to 24dB amplifying (4 bits) */
+    /* ...retrieve main volume - assume up to 24dB amplifying (4 bits) */
     t32 = d->volume[XA_MIXER_MAX_TRACK_NUMBER];
     w_l = (u16)(t32 & 0xFFFF), w_r = (u16)(t32 >> 16);
     
@@ -183,7 +183,7 @@
             r32 += *b[j]++ * v_r[j];
         }
 
-        /* ...normalize (truncate towards -inf) and multiply by master volume */
+        /* ...normalize (truncate towards -inf) and multiply by main volume */
         l32 = ((l32 >> 12) * w_l) >> 12;
         r32 = ((r32 >> 12) * w_r) >> 12;
 
@@ -221,7 +221,7 @@
 /* ...codec API size query */
 static XA_ERRORCODE xa_mixer_get_api_size(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...check parameters are sane */
+    /* ...check parameters are valid */
     XF_CHK_ERR(pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
     
     /* ...retrieve API structure size */
@@ -233,7 +233,7 @@
 /* ...standard codec initialization routine */
 static XA_ERRORCODE xa_mixer_init(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check - mixer must be valid */
+    /* ...validity check - mixer must be valid */
     XF_CHK_ERR(d, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...process particular initialization type */
@@ -277,7 +277,7 @@
     
     case XA_CMD_TYPE_INIT_DONE_QUERY:
     {
-        /* ...check if initialization is done; make sure pointer is sane */
+        /* ...check if initialization is done; make sure pointer is valid */
         XF_CHK_ERR(pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
         
         /* ...put current status */
@@ -298,7 +298,7 @@
 {
     u32     i_value;
     
-    /* ...sanity check - mixer pointer must be sane */
+    /* ...validity check - mixer pointer must be valid */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...pre-initialization must be completed, mixer must be idle */
@@ -336,7 +336,7 @@
 /* ...retrieve configuration parameter */
 static XA_ERRORCODE xa_mixer_get_config_param(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check - mixer must be initialized */
+    /* ...validity check - mixer must be initialized */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...make sure pre-initialization is completed */
@@ -384,7 +384,7 @@
 /* ...execution command */
 static XA_ERRORCODE xa_mixer_execute(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check - mixer must be valid */
+    /* ...validity check - mixer must be valid */
     XF_CHK_ERR(d, XA_API_FATAL_INVALID_CMD_TYPE);
     
     /* ...mixer must be in running state */
@@ -419,7 +419,7 @@
 {
     u32     size;
     
-    /* ...sanity check - check parameters */
+    /* ...validity check - check parameters */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...track index must be valid */
@@ -443,7 +443,7 @@
 /* ...get number of output bytes */
 static XA_ERRORCODE xa_mixer_get_output_bytes(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check - check parameters */
+    /* ...validity check - check parameters */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...track index must be zero */
@@ -464,7 +464,7 @@
 /* ...get number of consumed bytes */
 static XA_ERRORCODE xa_mixer_get_curidx_input_buf(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check - check parameters */
+    /* ...validity check - check parameters */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...track index must be valid */
@@ -489,7 +489,7 @@
 /* ..get total amount of data for memory tables */
 static XA_ERRORCODE xa_mixer_get_memtabs_size(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity checks */
+    /* ...basic validity checks */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...check mixer is pre-initialized */
@@ -504,7 +504,7 @@
 /* ..set memory tables pointer */
 static XA_ERRORCODE xa_mixer_set_memtabs_ptr(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity checks */
+    /* ...basic validity checks */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...check mixer is pre-initialized */
@@ -517,7 +517,7 @@
 /* ...return total amount of memory buffers */
 static XA_ERRORCODE xa_mixer_get_n_memtabs(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity checks */
+    /* ...basic validity checks */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
     
     /* ...we have N input buffers, 1 output buffer and 1 scratch buffer */
@@ -529,7 +529,7 @@
 /* ...return memory buffer data */
 static XA_ERRORCODE xa_mixer_get_mem_info_size(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...return frame buffer minimal size only after post-initialization is done */
@@ -544,7 +544,7 @@
 /* ...return memory alignment data */
 static XA_ERRORCODE xa_mixer_get_mem_info_alignment(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...return frame buffer minimal size only after post-initialization is done */
@@ -559,7 +559,7 @@
 /* ...return memory type data */
 static XA_ERRORCODE xa_mixer_get_mem_info_type(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...return frame buffer minimal size only after post-initialization is done */
@@ -591,7 +591,7 @@
 /* ...set memory pointer */
 static XA_ERRORCODE xa_mixer_set_mem_ptr(XAPcmMixer *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...codec must be initialized */
@@ -658,7 +658,7 @@
 {
     XAPcmMixer    *d = (XAPcmMixer *) p_xa_module_obj;
 
-    /* ...check if command index is sane */
+    /* ...check if command index is valid */
     XF_CHK_ERR(i_cmd < XA_MIXER_API_COMMANDS_NUM, XA_API_FATAL_INVALID_CMD);
     
     /* ...see if command is defined */
diff --git a/hifi/xaf/hifi-dpf/plugins/cadence/pcm_proc/xa-pcm.c b/hifi/xaf/hifi-dpf/plugins/cadence/pcm_proc/xa-pcm.c
index 4306714..cca97ef 100644
--- a/hifi/xaf/hifi-dpf/plugins/cadence/pcm_proc/xa-pcm.c
+++ b/hifi/xaf/hifi-dpf/plugins/cadence/pcm_proc/xa-pcm.c
@@ -364,7 +364,7 @@
 /* ...standard codec initialization routine */
 static XA_ERRORCODE xa_pcm_init(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check */
+    /* ...validity check */
     XF_CHK_ERR(d, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...process particular initialization type */
@@ -437,7 +437,7 @@
 {
     WORD32      i_value;
     
-    /* ...sanity check */
+    /* ...validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...configuration is allowed only in PRE-CONFIG state */
@@ -495,7 +495,7 @@
 /* ...retrieve configuration parameter */
 static XA_ERRORCODE xa_pcm_get_config_param(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check */
+    /* ...validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...make sure pre-configuration is completed */
@@ -546,7 +546,7 @@
 /* ...execution command */
 static XA_ERRORCODE xa_pcm_execute(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d, XA_API_FATAL_INVALID_CMD_TYPE);
 
    /* ...codec must be in running state */
@@ -592,7 +592,7 @@
     u32     in_stride = d->in_stride;
     u32     insize;
     
-    /* ...sanity check */
+    /* ...validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...track index must be valid */
@@ -619,10 +619,10 @@
 /* ...get number of output bytes produced */
 static XA_ERRORCODE xa_pcm_get_output_bytes(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check */
+    /* ...validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
-    /* ...buffer index must be sane */
+    /* ...buffer index must be valid */
     XF_CHK_ERR(i_idx == 1, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...component must be initialized */
@@ -640,7 +640,7 @@
 /* ...get number of consumed bytes */
 static XA_ERRORCODE xa_pcm_get_curidx_input_buf(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check */
+    /* ...validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...index must be valid */
@@ -658,7 +658,7 @@
 /* ...end-of-stream processing */
 static XA_ERRORCODE xa_pcm_input_over(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...sanity check */
+    /* ...validity check */
     XF_CHK_ERR(d, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...put end-of-stream flag */
@@ -672,7 +672,7 @@
 /* ..get total amount of data for memory tables */
 static XA_ERRORCODE xa_pcm_get_memtabs_size(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity checks */
+    /* ...basic validity checks */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...check mixer is pre-initialized */
@@ -687,7 +687,7 @@
 /* ...return total amount of memory buffers */
 static XA_ERRORCODE xa_pcm_get_n_memtabs(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity checks */
+    /* ...basic validity checks */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
     
     /* ...we have 1 input buffer and 1 output buffer */
@@ -699,7 +699,7 @@
 /* ...return memory type data */
 static XA_ERRORCODE xa_pcm_get_mem_info_type(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...codec must be in post-init state */
@@ -724,7 +724,7 @@
 /* ...return memory buffer size */
 static XA_ERRORCODE xa_pcm_get_mem_info_size(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...codec must be in post-init state */
@@ -752,7 +752,7 @@
 /* ...return memory alignment data */
 static XA_ERRORCODE xa_pcm_get_mem_info_alignment(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d && pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
     /* ...codec must be in post-initialization state */
@@ -767,7 +767,7 @@
 /* ...set memory pointer */
 static XA_ERRORCODE xa_pcm_set_mem_ptr(XAPcmCodec *d, WORD32 i_idx, pVOID pv_value)
 {
-    /* ...basic sanity check */
+    /* ...basic validity check */
     XF_CHK_ERR(d, XA_API_FATAL_INVALID_CMD_TYPE);
     XF_CHK_ERR(pv_value, XA_API_FATAL_INVALID_CMD_TYPE);
 
@@ -830,7 +830,7 @@
 {
     XAPcmCodec *d = (XAPcmCodec *) p_xa_module_obj;
 
-    /* ...check if command index is sane */
+    /* ...check if command index is valid */
     XF_CHK_ERR(i_cmd < XA_PCM_API_COMMANDS_NUM, XA_API_FATAL_INVALID_CMD);
     
     /* ...see if command is defined */
diff --git a/hifi/xaf/host-apf/proxy/xf-proxy.c b/hifi/xaf/host-apf/proxy/xf-proxy.c
index 9487f4e..0af4517 100644
--- a/hifi/xaf/host-apf/proxy/xf-proxy.c
+++ b/hifi/xaf/host-apf/proxy/xf-proxy.c
@@ -451,10 +451,10 @@
     xf_route_port_msg_t    *m;
     xf_user_msg_t           msg;
     
-    /* ...sanity checks - proxy pointers are same */
+    /* ...validity checks - proxy pointers are same */
     XF_CHK_ERR(proxy == dst->proxy, -EINVAL);
     
-    /* ...buffer data is sane */
+    /* ...buffer data is valid */
     XF_CHK_ERR(num && size && xf_is_power_of_two(align), -EINVAL);
     
     /* ...get control buffer */
@@ -572,7 +572,7 @@
     /* ...unused arg */
     (void) type;
 
-    /* ...basic sanity checks; number of buffers is positive */
+    /* ...basic validity checks; number of buffers is positive */
     XF_CHK_ERR(number > 0, -EINVAL);
 
     /* ...get properly aligned buffer length */
